package com.denlaku.longan.dao;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.qo.ObjPermQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.ObjectTag;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author tianx
 */
@Repository
public interface ObjectTagDao {
    /**
     * 新增权限标签
     *
     * @param objectTag 权限标签
     */
    @VarOp
    void add(ObjectTag objectTag);

    /**
     * 修改权限标签
     *
     * @param objectTag 权限标签
     */
    @VarOp
    void update(ObjectTag objectTag);

    /**
     * 获取权限标签
     *
     * @param query 查询参数
     * @return 权限标签
     */
    ObjectTag get(Query query);

    /**
     * 查询权限标签列表
     *
     * @param query 查询参数
     * @return 权限标签列表
     */
    List<ObjectTag> list(Query query);

    /**
     * 根据ID查询权限标签列表
     *
     * @param query 查询参数
     * @return 权限标签列表
     */
    List<ObjectTag> listByIds(Query query);

    /**
     * 搜索权限标签
     *
     * @param query 查询参数
     * @return 权限标签列表
     */
    List<ObjectTag> search(Query query);

    /**
     * 删除权限标签
     *
     * @param query 查询参数
     */
    void delete(ObjPermQuery query);
}
